package com.huixh.train.business.service;

import com.huixh.train.business.domain.TrainSeat;
import com.huixh.train.business.req.TrainSeatQueryReq;
import com.huixh.train.business.req.TrainSeatSaveReq;
import com.huixh.train.business.resp.TrainSeatQueryResp;
import com.huixh.train.common.resp.PageResult;

import java.util.List;

/**
 * @author huixh
 */
public interface TrainSeatService {
    /**
     * 保存
     *
     * @param trainSeatSaveReq 保存参数
     */
    void save(TrainSeatSaveReq trainSeatSaveReq);

    /**
     * 查询列表
     *
     * @param trainSeatQueryReq 查询参数
     * @return list
     */
    PageResult<List<TrainSeatQueryResp>> queryList(TrainSeatQueryReq trainSeatQueryReq);

    /**
     * 删除
     *
     * @param id id
     */
    void delete(Long id);

    /**
     * 生成改车次座位
     * @param trainCode 车次号
     */
    void genTrainSeat(String trainCode);

    /**
     * 根据火车编码获取座位列表。
     *
     * @param trainCode 火车的编码，用于查询对应的座位信息。
     * @return 返回一个火车座位列表，列出了指定火车编码的所有可用座位。
     */
    List<TrainSeat> getSeatListByCode(String trainCode);

}